Removable media host executables

ABSTRACT

A method of storing images includes providing an image capturing apparatus. A non-volatile memory medium is inserted into the image capturing apparatus. The non-volatile memory medium is suitable for storing image data. A program is written onto the non-volatile memory medium. The program is capable executing without specific user initiative when the non-volatile memory medium is coupled to a computer to access image data stored in the non-volatile memory medium.

BACKGROUND OF THE INVENTION

The present invention relates to digital camera technology. Morespecifically, the prevent invention relates to a method and apparatus ofaccessing images stored in a storage medium using any computer.

Digital cameras have been gaining wide acceptance among consumersrecently. As a result, more and more companies are marketing and sellingtheir own brand of digital cameras. The images captured with a digitalcamera are generally stored in a non-volatile memory, e.g., flash card.To view and edit these images, the digital camera is generally coupledto a computer having a companion application software suitable foraccessing the stored images. The companion software is usually providedto the owner of the digital camera when the camera is purchased, whichis installed in the owner's computer.

Without the companion software, the images stored in the flash card canbe difficult or impossible to access. In addition, since differentmanufacturers provide different companion software, which may beincompatible with other companion software, a user may find itinconvenient or impossible to access the images stored in the flash cardusing another person's computer, e.g., while at a friend's house or on avacation, that does not have an appropriate companion software.

Therefore, it would be desirable to provide a method for accessing theimages stored in the flash card in any computer even those without thecompanion application software installed therein.

BRIEF SUMMARY OF THE INVENTION

The present invention provides a method, and corresponding apparatus,for accessing images stored in a storage medium using any computer. Inone embodiment, a method of storing images includes providing an imagecapturing apparatus. A non-volatile memory medium is inserted into theimage capturing apparatus. The non-volatile memory medium is suitablefor storing image data. A program is written onto the non-volatilememory medium. The program is capable executing without specific userinitiative when the non-volatile memory medium is coupled to a computerto access image data stored in the non-volatile memory medium. In oneimplementation, the program contains an executable file not an entireapplication software since storing the application software in thememory medium, such as a flash card, may take too much available storagespace.

For a further understanding of the nature and advantages of theinvention, reference should be made to the following description takenin conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a digital camera according to oneembodiment of the invention.

FIG. 2A depicts a simplified flow chart of a process of creating andutilizing a start-up program according to one embodiment of theinvention.

FIG. 2B depicts a simplified flow chart of a first method of utilizingthe start-up program of FIG. 2A, according to one embodiment of theinvention.

FIG. 2C depicts a simplified flow chart of a second method of utilizingthe start-up program of FIG. 2A, according to one embodiment of theinvention.

FIG. 2D depicts a simplified flow chart of a third method of utilizingthe start-up program of FIG. 2A, according to one embodiment of theinvention.

FIG. 2E depicts a simplified flow chart of a method of utilizing of astart-up program according to one embodiment of the invention.

FIG. 3 is a block diagram of a flash card with a first start-up programaccording to one embodiment of the invention.

FIG. 4 is a block diagram of a flash card with a second start-up programaccording to one embodiment of the invention.

DESCRIPTION OF THE SPECIFIC EMBODIMENTS

Referring to FIG. 1, a digital camera 50 includes an imaging device 100and a processing system 150. The imaging device includes a lens 102having an iris, a filter 104, an image sensor 106, a timing generator108, an analog signal processor (ASP) 110, an analog-to-digital (A/D)converter 112, a digital signal processor (DSP) 114, and one or moremotors 116.

In operation, imaging device 100 captures an image of object 101 viareflected light impacting image sensor 106 along an optical path 118.Image sensor 106 generates a set of raw image data representing thecaptured image. The raw image data is then routed through ASP 110, A/Dconverter 112 and DSP 114. DSP 114 has outputs coupled to timinggenerator 108, ASP 110, and motors 116 to control these components. DSP114 also has its output coupled to processing system 150 via a bus 151.The raw image data are transmitted to system 150 and processed therein.

In one embodiment, processing system 150 includes a bus interface 152, aprocessor 154, a read-only memory (ROM) 156, an input device 158, arandom access memory (RAM) 160, an I/O interface 162, a flash memory164, a non-volatile memory 166, and an internal bus 168.

Bus interface 152 is a bi-directional first-in, first-out interface forreceiving the raw image data and control signals passed between system150 and DSP 114. Processor 154 executes programming instructions storedin ROM 156 and RAM 160 to perform various operations. ROM 156 generallystores a set of computer readable program instructions which control howprocessor 154 accesses, transforms and outputs the image data. In oneimplementation, ROM 156 also stores a start-up program or file thatenable a user to access the images stored in the flash memory using anycomputer whether it has a companion application software installed ornot, as explained in more detail below. Alternatively, the start-upprogram may be stored in another ROM or non-volatile memory.

Input device 158 generally includes one or more control buttons (notshown) which are used to input operating signals that are translated byprocessor 154 into an image capture request, an operating mode selectionrequest, and various control signals for imaging device 100. I/OInterface 162 is coupled to internal bus 168 and has an external portconnector (not shown) that can be used to couple digital camera 50 to acomputer 60 via an I/O interface 62 for viewing and editing the imagedata stored in flash memory 164. The computer includes an applicationsoftware 64 to access the image data stored in the flash memory. In oneimplementation, I/O interface 62 is a universal serial bus (USB) port.

Flash memory 164 stores the image data processed by the processor. Inone implementation, flash memory 164 is a removable flash card or disk300 (FIG. 3), e.g., SmartMedia™ and CompactFlash™, so that a user mayreplace a full flash card with a new flash card to store additionalimage data. The flash card includes a first start-up program 302 that iscopied onto the flash card when the card is first inserted into camera50. Start-up program 302 is a program that executes automaticallywithout specific user initiative and may include an Internet address ofa website having accessing to application software 64. In otherimplementations, other types of non-volatile memory other than flashcards may be used.

As used herein, the term “without specific user initiative” means a userdoes not directly input any commands to the computer using an inputdevice (not shown) that is coupled to the computer. Examples of such aninput device include keyboard, mouse, voice activation device, and touchscreen. An example of a program that executes “without specific userinitiative” is an autoplay file in a CD-ROM that runs automatically whenthe CD-ROM is inserted into a CD-ROM driver.

Non-volatile memory 166 stores an image counter whose current valuebecomes an identifier for each new set of image data captured by camera50. The counter is preferably incremented each time a new image iscaptured.

Referring to FIG. 2, a process 200 depicts a method of creating andutilizing start-up program 302, according to one embodiment of theinvention. At step 202, flash memory 164 (e.g., a flash card 300) isinserted into camera 50 to store image data processed by processor 154.Process 200 determines whether or not flash card 300 has start-upprogram 302 (step 204). If not, the processor retrieves the start-upprogram from ROM 156 and copies it onto the flash card (step 206). Sincea new blank flash card generally would not have the start-up program,step 204 may be performed at the time the new flash card is beingformatted. For flash cards that has been previously formatted by anotherdigital camera, start-up program 302 may be copied onto the flash cardwithout formatting the flash card.

Once the flash card has been formatted and the start-up program has beencopied onto the flash card, a user may commence taking pictures (step208). At step 204, if the flash card already had start-up program 302,then step 206 is skipped.

After the pictures have been taken and the image data are stored inflash card 300, a user may access the stored image data in various ways.In a first method 210 (FIG. 2B), the contents of flash card 300 areaccessed by linking or coupling camera 50 to a computer 60 having anappropriate application or application software 64 installed (step 212).Generally, computer 60 would be the user's own personal computer. In oneimplementation, the camera is coupled to the computer via a universalserial bus (USB) port.

When camera 50 is coupled to the computer via the USB port, the computerrecognizes the camera and runs the application software (step 214). Theimage data stored in the flash card is viewed and edited usingapplication software 64 (step 216). Under the first method, the benefitsof the start-up program is not fully utilized since computer 60 withapplication software 64 installed therein recognizes camera 50 when itis coupled to the computer.

In a second method 218 (FIG. 2C), the contents of flash card 300 areaccessed by using a flash card reader (not shown). Flash card 300 isremoved from camera 50 and inserted into the flash card reader that iscoupled to computer 60 having application software 64 installed therein(step 220). In one implementation, the flash card reader is coupled tothe computer via a USB port. The flash card reader detects the flashcard and executes the start-up program (step 222). Alternatively, thestart-up program may be executed by processor 154 of the camera orcomputer 60. The start-up program instructs computer 60 to search forthe software in its directory and run the application software to accessthe contents of flash card 300 (step 224). Thereafter, the contents offlash card 300 is accessed using the software (step 226).

Without the start-up program, the computer would not have known to runthe software since the computer would have only detected and recognizedthe flash card reader but not the flash card inserted in the reader. Asa result, the software would not have been run by the computer. The userwould have had to manually initiate the software or access the imageswithout running the software by navigating through a complex directorystructure, which users may find it inconvenient and/or challenging.

In a third method 228 (FIG. 2D), the contents of flash card 300 areaccessed in a computer 70 that does not have application software 64installed. Such a situation may occur when a user attempts to access thecontents of flash card 300 in another person's computer, e.g., while theuser is on a vacation. Without the installed software, the contents ofthe flash card 300 may be difficult to access under conventionalmethods. However, such a problem does not exist under the embodiments ofthe present invention.

The start-up program copied onto the flash card enables a user to easilyaccess the contents of flash card 300, as explained below. At step 230,camera 50 having flash card 300 is coupled to computer 70, e.g., via aUSB port. Since the software is not installed, the computer does notrecognize the camera. However, upon being coupled to the computer, thestart-up program copied onto the flash card is executed automatically,i.e., without specific user initiative (step 232). The start-up programinstructs processor 154 to activate an Internet browser installed in thecomputer, e.g., Microsoft Internet Explorer™ or Netscape Navigator™(step 234). The start-up program provides the browser with a websiteaddress, e.g., www.logitech/camera/software, from where the software maybe obtained, and causes the browser to create a communication link tothe desired website (step 238). The software is then downloaded to thecomputer (step 238) and is executed (step 240). The contents of theflash card are then viewed and edited using the software downloaded fromthe website (step 242).

In other implementations, the software is remotely accessed from thecomputer to view and edit the contents of the flash card withoutdownloading the software to computer 70 since the user may not want thesoftware to be installed in the computer. Computer 70 may be anotherperson's computer and that person may not have any need for thesoftware. Mindful of such situations, the present implementation isdirected to not inconveniencing the user with the task of deleting thesoftware from computer 70 after the contents of the flash card have beenaccessed. Alternatively, the user may be provided with an option ofdownloading the software or accessing the software remotely withoutdownloading.

Yet in another implementation, the start-up program stored in ROM 156may be used to activate the software to access the contents of the flashcard rather than using start-up program 302 copied onto flash card 300(FIG. 3). Under this implementation, a user may be provided with anoption of whether or not to have the start-up program copied to theflash card.

Referring to FIG. 4, in another embodiment, a second start-up program402 of a flash card 400 includes a software 404 that can be used toaccess the contents of the flash card without separately running theapplication software installed in the computer. In one implementation,software 404 is a companion software that is a stripped version of theapplication software, having limited features of the applicationsoftware, such as those sufficient to view and edit the images stored inthe flash card and/or perform other key features of the applicationsoftware. Alternatively, software 404 may be the entire applicationsoftware or a substantially complete version thereof.

In one implementation, start-up program 402 is copied onto the flashcard in a similar manner as described in steps 202 to 206 of process200. Start-up program 402 may also be utilized similarly with somemodifications to third method 228 since the application software doesnot need to be retrieved from a remote location.

FIG. 2E depicts a method 228′ under the present implementation whichcorresponds to third method 228 described previously. At step 244following step 208, camera 50 having flash card 400 is linked to thecomputer, e.g., via a USB port. Upon being coupled to the computer, thestart-up program copied onto the flash card is executed automatically,i.e., without specific user initiative (step 246). Start-up program 402,having sufficient software capability, enables the user to view and editthe images stored in the flash card without separately running theapplication software (step 248).

As will be understood by those skilled in the art, the present inventionmay be embodied in other specific forms without departing from theessential characteristics thereof. For example, the start-up programstored in ROM 156 is not copied onto the flash card to conserve memoryspace in the flash card. Methods 228 and 228′ are performed by executingthe start-up program stored in ROM 156 when the camera is coupled to thecomputer. Accordingly, the foregoing description is intended to beillustrative, but not limiting, of the scope of the invention which isset forth in the following claims.

1. A method of storing images, comprising: providing an image capturingapparatus; inserting a non-volatile memory medium into the imagecapturing apparatus, the non-volatile memory medium being suitable forstoring image data; writing a program onto the non-volatile memorymedium, wherein the program is capable of being executed withoutspecific user initiative when the non-volatile memory medium is coupledto a computer to access image data stored in the non-volatile memorymedium; and determining whether the inserted non-volatile memory mediumhas the program, wherein the program is written if it is determined thatthe memory medium does not have the program.
 2. A method of storingimages, comprising: providing an image capturing apparatus; inserting anon-volatile memory medium into the image capturing apparatus, thenon-volatile memory medium being suitable for storing image data;writing a program onto the non-volatile memory medium, wherein theprogram is capable of being executed without specific user initiativewhen the non-volatile memory medium is coupled to a computer to accessimage data stored in the non-volatile memory medium; and formatting thememory medium to make it suitable for storing image data, wherein theprogram is written onto the memory medium at the time the memory mediumis being formatted.
 3. A method of storing images, comprising: providinga digital camera; inserting a flash card into the image capturingapparatus, the flash card being suitable for storing image data; andwriting a program onto the flash card, wherein the program is capable ofbeing executed without specific user initiative when the flash card iscoupled to a computer to access image data stored in the flash card;storing a digital image into the flash card; providing a computer toaccess the stored digital image; coupling the flash card to thecomputer, whereby the program is executed without specific userinitiative; accessing the digital image stored in the flash card usingthe computer; activating a browser installed in the computer accordingto instructions of the executed program; and creating a communicationlink to a website having access to an application software, theapplication software being suitable for accessing the digital imagestored in the flash card; wherein the application software is accessedremotely and is not downloaded to access the digital image stored in theflash card.
 4. A method of storing images, comprising: providing adigital camera; inserting a flash card into the image capturingapparatus, the flash card being suitable for storing image data; andwriting a program onto the flash card, wherein the program is capable ofbeing executed without specific user initiative when the flash card iscoupled to a computer to access image data stored in the flash card;storing a digital image into the flash card; providing a computer toaccess the stored digital image; coupling the flash card to thecomputer, whereby the program is executed without specific userinitiative; accessing the digital image stored in the flash card usingthe computer; activating a browser installed in the computer accordingto instructions of the executed program; creating a communication linkto a website having access to an application software, the applicationsoftware being suitable for accessing the digital image stored in theflash card; and providing a user with an option of downloading theapplication software or accessing the application software remotely toaccess the digital image stored in the flash card.
 5. A method ofaccessing images captured with a digital camera, the method comprising:providing a digital camera having a start-up program that executeswithout specific user initiative; inserting a flash card into thedigital camera; copying the start-up program onto the flash card;storing an image captured by the digital camera into the flash card; andcoupling the flash card to a computer suitable for accessing the storedimage, whereupon the start-up program is executed without specific userinitiative, the executed start-up program causing an applicationsoftware to be activated to access the stored image, wherein theapplication software is available at a remote location from thecomputer, wherein the application software is activated withoutdownloading core modules of the application software from the remotelocation.